import Component from "../Component.js";

export default class Coordinate extends Component {
    constructor() {
        super();
    }

    template() {
        const coordinate_div = `<div id="coordinate"></div>`;
        this.$$("#article").append(coordinate_div);
    }

    control() {
        // 通过鼠标移动获取准确坐标
        this.$$(document).mousemove((e) => {
            // 这里需要注意:
            // 1.因为经纬度换算是按照map所在的div的基础位置来计算的
            // 2.所以首先需要获取div所在的屏幕位置
            const top = this.$$("#map").offset().top;
            const left = this.$$("#map").offset().left;
            // 3.换算时需要先减去左上角的坐标
            const coordinate = this.drawer.getCoordinateFromPixel([e.x-left, e.y-top]);
            const config = this.algo.getConfig();
            if (config !== null && coordinate !== null) {
                // 4.这里通过反正则化获取本来CAD的坐标
                const x = this.algo.denormalX(coordinate[0]).toFixed(2);
                const y = this.algo.denormalY(coordinate[1]).toFixed(2);
                this.$$("#coordinate").html([x, y]);
            }
        })
    }
}